package com.galeno.day02;

import org.apache.flink.streaming.api.functions.source.SourceFunction;

/**
 * @author galeno
 * @Description:
 * @date 2021/10/1617:40
 */
public class NoParallSourceFunc implements SourceFunction<String> {
    /**
     * run方法task启动后会执行一次
     *  如果run方法一直不退出，就是一个无限的数据流
     *  如果数据读取完了，run方法退出，就是一个有限的数据流，Source退出，job也停止了
     * @param sourceContext
     * @throws Exception
     */
    @Override
    public void run(SourceContext<String> sourceContext) throws Exception {
        for (int i = 0; i < 1000; i++) {
            sourceContext.collect(i+"");
        }

        System.out.println("Run方法被调用了~~~~~");
    }

    @Override
    public void cancel() {
        System.out.println("Cancel方法被调用了~~~~~");
    }
}
